本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。

最終更新日:1999年11月29日


MS-DOSにおける
2000年年越え日付表示回避方法



ここでは、2000年年越え日付表示に関して、2000年以降の日付を正しく表示しないハードウェアでMS-DOSを使用している場合の回避方法を説明します。
Windows 3.0A/Windows 3.1/NetWareをご使用の場合は、インストールされているMS-DOSの版数をご確認の上、対応する回避方法を実施してください。


なお、ここで説明している方法は、ハードウェアの日付表示を正常にさせるためのものであり、OSの2000年対応策ではありません。OSの2000年対応状況については、前のページに戻り、OSの項をご覧ください。

注意!! (1999.11.29)
「PCLK.SYSドライバ組込み」の項に、CONFIG.SYSファイルでのPCLK.SYSの記述位置の説明を追加しました。
ただし、これまで既にPCLK.SYSを組込み、2000年テストを行って、2000年年越え日付表示に問題が発生しないことを確認しているシステムでは、このCONFIG.SYSファイルでのPCLK.SYSの記述位置について再調査を行う必要はありません。


が付いている項目はPDF形式のファイルで提供しております。PDF形式のファイルをご覧になるには、Adobe Systems社のAdobe Acrobat Reader(無料)が必要です。

Acrobat Readerをお持ちでない方は、 「Get Acrobat Reader」のボタンをクリックし、Adobe Systems社のホームページからダウンロードし、インストールしてからご覧下さい。


MS-DOS 3.21(if486VXシリーズ、if386AXシリーズ)での回避方法

以下の何れかの回避方法があります。

●SETUPコマンドで設定:

2000年になり最初に電源を入れたときに、SETUPコマンドによってシステムの日付情報を設定し直します。2000年になってから初めて電源を入れた時、このSETUPコマンドを実行して日付を設定し直すと、以降は2000年の日付を表示できるようになります。

SETUPコマンドによる設定方法についてはこちらをご覧ください。

●PCLK.SYSドライバの組み込み:

沖電気では、if486VX、if386AX等の2000年以降の日付は1980年1月4日と表示される製品に対し、PCLK.SYSという日付補正ドライバソフトを提供しています。
PCLK.SYSはMS-DOSのCONFIG.SYSに組み込み起動する常駐型のドライバソフトです。
PCLK.SYSを組み込む事により、2000年以降の日付を正しく表示する事ができます。
PCLK.SYSは、Int21と呼ばれるMS-DOSで用意されているライブラリを呼び出し日付を取得するアプリケーション(DATEコマンドも Int21を呼び出し日付表示を行います。)には有効ですが、アプリケーションの中にはInt1Aと呼ばれるBIOSやRTC(リヤルタイムクロック)を 直接呼び出しているものについては効果がありません。
Int21使っているかInt1Aを使っているかは、そのアプリケーションの開発元にご相談ください。
Int1Aを使用している場合は、PCLK.SYSを組み込んでも効果がありませんので、アプリケーション側での対応となります。

PCLK.SYSドライバの入手方法:

      以下の製品を購入して下さい。

      ◆「拡張クロックデバイスドライバ」

      1ユーザ使用権+媒体 : 定価 ¥2,000

      PCLK.SYSの組み込み方法は、PCLK.SYSに添付されるREADME.TXTファイルを参照してください。または、こちらの「MS-DOS用拡張クロックデバイスドライバ PCLK.SYS取扱説明書」をご覧ください。

      なお、CONFIG.SYSファイルでは、PCLK.SYSの記述を最終行に入れてください。

        (CONFIG.SYSファイル)


MS-DOS 5.0/AX 、MS-DOS 5.0V 、MS-DOS6.2Vにおける回避方法


以下の何れかの回避方法があります。

●SETUPコマンドで設定:

(これはif 486VXシリーズ, if 386AXシリーズでのみご利用頂ける回避方法です)
2000年になり最初に電源を入れたときに、SETUPコマンドによってシステムの日付情報を設定し直します。2000年になってから初めて電源を入れた時、このSETUPコマンドを実行して日付を設定し直すと、以降は2000年の日付を表示できるようになります。

SETUPコマンドによる設定方法についてはこちらをご覧ください。


●PCLK.SYSドライバの組み込み:

沖電気では、if486VX、if386AX等の2000年以降の日付は1980年1月4日と表示される製品に対しPCLK.SYSという日付補正ドライバソフトを提供しています。
PCLK.SYSはMS-DOSのCONFIG.SYSに組み込み起動する常駐型のドライバソフトです。
PCLK.SYSを組み込む事により、2000年以降の日付を正しく表示する事ができます。
PCLK.SYSは、Int21と呼ばれるMS-DOSで用意されているライブラリを呼び出し日付を取得するアプリケーション(DATEコマンドも Int21を呼び出し日付表示を行います。)には有効ですが、アプリケーションの中にはInt1Aと呼ばれるBIOSやRTC(リヤルタイムクロック)を 直接呼び出しているものについては効果がありません。
Int21使っているかInt1Aを使っているかは、そのアプリケーションの開発元にご相談ください。
Int1Aを使用している場合は、PCLK.SYSを組み込んでも効果がありませんので、アプリケーション側での対応となります。

PCLK.SYSドライバの入手方法:

PCLK.SYSはそれぞれ以下のように入手可能です。

    • DOS 6プレインストールモデルの場合は、\OKIディレクトリ下に格納されています。
    • DOS 6バンドルモデルの場合は、添付FDに格納されています。
    • DOS 5/Vモデルの場合は、\OKIディレクトリ下、または添付FDに格納されています。

上記以外のDOSユーザの場合、または、添付されている媒体中にPCLK.SYSがない場合や媒体を紛失したユーザの場合などは、以下の製品を購入して下さい。

    ◆「拡張クロックデバイスドライバ」
    1ユーザ使用権+媒体 : 定価 ¥2,000

インストールは、各々のリリースノートもしくはマニュアルを参照して下さい。
PCLK.SYSの組み込み方法は、PCLK.SYSに添付されるREADME.TXTファイルを参照してください。または、こちらの「MS-DOS用拡張クロックデバイスドライバ PCLK.SYS取扱説明書」をご覧ください。

      なお、CONFIG.SYSファイルでは、PCLK.SYSの記述を最終行に入れてください。

        (CONFIG.SYSファイル)


●DATEコマンドで設定:

MS-DOS 5.0/AX 、MS-DOS5.0V 、MS-DOS 6.0V では、上記のPCLK.SYSを組み込み対応する事もできますが、DATEコマンドによる対応も一般的に行われる手法です。

2000年対応BIOSを持つPCでは、2000年になると上位2桁の西暦を19から20へ書き換えて2000年を表示しますが、2000年未対応BIOSでは上位2桁を書き換えず19のままとなります。
そのため2000年未対応のBIOS上では1900年となり、MS-DOSのDATEコマンドを実行すると1980年1月4日となります。
(DATEコマンドで1980年と表示される理由はここを参照)

ところが、MS-DOS5.0以降のMS-DOSで提供されるDATEコマンドには、BIOS上で持つ西暦データの上位2桁を書き換える機能があります。この機能により、BIOSで持つ19を20に書き換えることができます。
つまり、MS-DOS5.0以上では、2000年になりPCの電源を入れる一番最初の日に以下のDATEコマンドを一度だけ入力しておけば、以降の日付が2000年を表示できるようになるわけです。

例:2000年1月10日に初めて電源を入れた場合

C:\>DATE 2000-01-10


MS-DOS 5.0以前の3.21、2.11、1.25等はBIOSを書き換える機能がありませんので、対応できません。



DATEコマンドで1980年と表示される理由


    PCにおける2000年問題の1つに、1999年12月31日から2000年1月1日にかけて年越えを行なった場合の日付表示問題があります。

    PCではOS(オペレーティングシステム)が起動時に、ハードウェアをコントロールするBIOS(バイオス)と呼ばれるプ ログラム群から年月日を取得します。OSは、BIOSから日付データを取得後、OS内部のソフトタイマー(ソフト的に持つ時計)により日時のカウントアッ プを行ないます。

    BIOSが2000年に対応していない場合、BIOSはOSに「2000年」と渡すべきときに「2000年」ではなく「1900年」を渡してしまいます。そのため、OSは2000年を正確に表示する事ができなくなります。

    BIOSが2000年対応しているものには、1999年から2000年に西暦が変わると西暦の上位2桁を19から20に書き換える仕掛けが入っています。この場合、2000年を越えてもOS起動時に2000年の日付をOSは取得できるため正常動作が可能となります。

    例えば、MS−DOSではOSの内部カレンダーは1980年から2099年までとなっており、BIOSから1900年の日 付を取得するとOSの内部カレンダーに無い日付となるため、OSはエラーとして1980年1月4日(1980/01/04)を表示します。(2000年以 降のどの日でも、MS−DOSでは1980/01/04となります)

    MS−DOSを1999年12月31日から2000年1月1日まで連続稼動させると、MS−DOSは2000年1月1日と 正常に表示します。これは、MS−DOSがBIOSから日付取得を行なうのが起動時の最初の1回だけで、以降はMS−DOSが持つソフトタイマーによって 日付のカウントアップを行なうためです。
    しかし、2000年1月1日以降にMS−DOSを再起動すると、BIOSから日付取得を再度行なうため、1980年1月4日となってしまいます。



inserted by FC2 system